#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
#define rep(i, a, b) for (int i = (a); i <= (b); i++)
#define per(i, a, b) for (int i = (a); i >= (b); i--)
#define endl '\n'
const int N = 1005;

int n, mx, now, reg;
struct Node {
  int p, dmg;
  int id;
  bool operator<(const Node& o) const {
    if (p == o.p) return dmg > o.dmg;
    return p > o.p;
  }
} a[N];

void solve() {
  cin >> n >> mx >> reg;
  rep(i, 1, n) a[i].id = i, cin >> a[i].p >> a[i].dmg;
  now = mx;
  sort(a + 1, a + n + 1);
  priority_queue<pii> pq;
  int l = 1, t = 0, d = -reg;
  vector<pii> spell;
  while (now > 0) {
    // select scroll
    while (l <= n && now * 100 <= mx * a[l].p) {
      pq.push(pii(a[l].dmg, a[l].id));
      l++;
    }
    if (pq.empty() && now == mx) {
      cout << "NO" << endl;
      return;
    }
    if (pq.size()) {
      pii x = pq.top();
      pq.pop();
      d += x.first;
      spell.push_back(pii(t, x.second));
      t++;
      now = min(mx, now - d);
    } else {
      int nxt = l <= n ? (a[l].p * mx / 100) : 0;
      int need = (now - nxt + d - 1) / d;
      now -= need * d;
      t += need;
    }
  }
  cout << "YES" << endl;
  cout << t << ' ' << spell.size() << endl;
  for (pii x : spell) {
    cout << x.first << ' ' << x.second << endl;
  }
  return;
}
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int t;
  t = 1;
  while (t--) solve();
  return 0;
}